package com.ruoyi.merchant.serviceDetails.service;

import java.util.List;
import com.ruoyi.merchant.serviceDetails.domain.ServiceDetails;

/**
 * 服务详情Service接口
 * 
 * @author zzr
 * @date 2025-09-14
 */
public interface IServiceDetailsService 
{
    /**
     * 查询服务详情
     * 
     * @param id 服务详情主键
     * @return 服务详情
     */
    public ServiceDetails selectServiceDetailsById(Long id);

    /**
     * 查询服务详情列表
     * 
     * @param serviceDetails 服务详情
     * @return 服务详情集合
     */
    public List<ServiceDetails> selectServiceDetailsList(ServiceDetails serviceDetails);

    /**
     * 新增服务详情
     * 
     * @param serviceDetails 服务详情
     * @return 结果
     */
    public int insertServiceDetails(ServiceDetails serviceDetails);

    /**
     * 修改服务详情
     * 
     * @param serviceDetails 服务详情
     * @return 结果
     */
    public int updateServiceDetails(ServiceDetails serviceDetails);

    /**
     * 批量删除服务详情
     * 
     * @param ids 需要删除的服务详情主键集合
     * @return 结果
     */
    public int deleteServiceDetailsByIds(Long[] ids);

    /**
     * 删除服务详情信息
     * 
     * @param id 服务详情主键
     * @return 结果
     */
    public int deleteServiceDetailsById(Long id);

    /**
     * 根据店铺ID获取可用的服务类别列表
     * 
     * @param shopId 店铺ID
     * @return 服务类别列表
     */
    public List<com.ruoyi.merchant.serviceType.domain.ServiceType> getShopServiceTypes(Long shopId);

    /**
     * 根据店铺ID和服务类别ID查询服务详情列表
     * 
     * @param shopId 店铺ID
     * @param typeId 服务类别ID
     * @return 服务详情列表
     */
    public List<ServiceDetails> selectServiceDetailsByShopAndType(Long shopId, Long typeId);

    /**
     * 根据店铺ID查询该店铺的所有服务详情
     * 
     * @param shopId 店铺ID
     * @return 服务详情列表
     */
    public List<ServiceDetails> selectServiceDetailsByShopId(Long shopId);
}
